// 查询
var db = connect('company');

// 简单查找
db.workmate.find({'skill.skillOne': 'bbb1'});

// 字段筛选
db.workmate.find( // 只限时name、skill.skillOne字段
    { "skill.skillOne": "HTML+CSS" },
    { name: true, "skill.skillOne": true, _id: false }
);

/*
小于($lt):英文全称less-than
小于等于($lte)：英文全称less-than-equal
大于($gt):英文全称greater-than
大于等于($gte):英文全称greater-than-equal
不等于($ne):英文全称not-equal
*/
// 不等修饰符
db.workmate.find( // 查询年龄小于等于30大于等于25
    { age: { $lte: 30, $gte: 25} },
    { name: true, age: true, "skill.skillOne": true, _id: false }
);

// $in:存在的值 $nin：除了$in内的值   （对应一个key）
db.workmate.find({age:{$in:[25,33]}},
    {name:1,"skill.skillOne":1,age:1,_id:0}
)

// $or （对应两个key）$nor
db.workemate.find(
    { $or: [
        { age: { $lgt: 30 } },
        { 'skill.skillOne': 'bb1' }
    ]},
    { name: 1, 'skill.skillOne': 1, _id: 0, age: 1 }
)

// $and 
db.workemate.find(
    { $and: [
        { age: { $lgt: 30 } },
        { 'skill.skillOne': 'bb1' }
    ]},
    { name: 1, 'skill.skillOne': 1, _id: 0, age: 1 }
)

// $not 查询条件之外的数据（需要注意的是$not修饰符不能应用在条件语句中，只能在外边进行查询使用）
db.workmate.find(
    { age: { $not:{ $lte:30,$gte:20} } },
    {name:1,"skill.skillOne":1,age:1,_id:0}
)
